package com.joyxy.spider.mapscript.operation;

import java.util.Arrays;

/**
 * 未知操作类
 * 用于处理无法识别的操作类型
 */
public class UnknownOperation extends BaseOperation {
    /** 原始参数 */
    private int[] originalParameters;
    
    public UnknownOperation(int operationType, int[] parameters) {
        super(operationType, "未知操作");
        this.originalParameters = parameters != null ? parameters.clone() : new int[0];
    }
    
    @Override
    public void execute() {
        System.out.println("警告: 执行未知操作类型 " + operationType + 
                         ", 参数: " + Arrays.toString(originalParameters));
        // 对于未知操作，不执行任何具体逻辑
    }
    
    @Override
    public boolean isValid() {
        // 未知操作始终认为是有效的，但会发出警告
        return true;
    }
    
    @Override
    public String getDetailInfo() {
        return String.format("未知操作: 类型=%d, 参数=%s", 
                operationType, Arrays.toString(originalParameters));
    }
    
    /**
     * 获取原始参数
     */
    public int[] getOriginalParameters() {
        return originalParameters != null ? originalParameters.clone() : new int[0];
    }
    
    /**
     * 获取参数数量
     */
    public int getParameterCount() {
        return originalParameters != null ? originalParameters.length : 0;
    }
    
    /**
     * 获取指定索引的参数值
     */
    public int getParameter(int index) {
        if (originalParameters == null || index < 0 || index >= originalParameters.length) {
            return 0;
        }
        return originalParameters[index];
    }
    
    @Override
    public String toString() {
        return String.format("UnknownOperation{type=%d, params=%s}", 
                operationType, Arrays.toString(originalParameters));
    }
} 